/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pooproj.repositorio;

import java.util.ArrayList;
import pooproj.basica.Locacao;
import pooproj.erro.ConexaoException;
import pooproj.erro.ConsultaException;

/**
 *
 * @author Daniella
 */
public interface RepositorioLocacao {
    
    /**
     * adiciona registro de locacao no bd
     * @param l
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public void inserir(Locacao l) throws ConsultaException,ConexaoException;
    
    /**
     * altera registro de locacao no bd
     * @param l
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public void alterar(Locacao l) throws ConsultaException,ConexaoException;
    
    /**
     * exclui registro de locacao do bd
     * @param l
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public void excluir(Locacao l) throws ConsultaException,ConexaoException;
    
    /**
     * consulta locacao a partir da data de locacao
     * @param data
     * @return Locacao
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public Locacao consultarDtLoc(String data) throws ConsultaException,ConexaoException;
    
    /**
     * Consulta Locacao a partir da data de devolucao
     * @param data
     * @return Locacao
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public Locacao consultarDtDevol(String data) throws ConsultaException,ConexaoException;
     
    /**
     * consulta locacao a partir do cod locacao
     * @param cod
     * @return Locacao
     * @throws ConsultaException
     * @throws ConexaoException
     */
    
    public Locacao consultarCodLoc(int cod) throws ConsultaException,ConexaoException;
    
    
    /**
     * Consulta Locacao a partir do cod do cliente
     * @param cod
     * @return Locacao
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public Locacao consultarCodCliente(int cod) throws ConsultaException,ConexaoException;
    
    
    
    /**
     * Consulta para retornar o codigo de locacao a partir da data locacao
     * data devolução e codigo do cliente
     * @param dtLoc
     * @param dtDevol
     * @param codCliente
     * @return int
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public int consultarTudo(String dtLoc, String dtDevol, int codCliente)  throws ConsultaException,ConexaoException;
    
    /**
     * Lista todos os registors da tabela Locacao
     * @return ArrayList
     * @throws ConsultaException
     * @throws ConexaoException
     */
    public ArrayList<Locacao> listar() throws ConsultaException,ConexaoException;
    
}
